/* 
 * File:   FeatureVectors.h
 * Author: ungerma
 *
 * Created on 04. August 2014, 15:23
 */

#ifndef FEATUREVECTORS_H
#define	FEATUREVECTORS_H

#include <cstdio>
#include <iostream>
#include <algorithm> 
#include <fstream>
#include <exception>
#include <sstream>
#include <string>

#include "Images.h"
#include "SupportVectorMachine.h"
#include "TestResults.h"
#include "MPEG7Settings.h"

class FeatureVectors {
public:
    
    FeatureVectors();
    FeatureVectors(HOGSettings settings);
    
    void calculateAndSerialize(SingleImage si, float clz, string filename,
        string mpeg7List, string mpeg7Path, string mpegScd, string mpegEhd);
    void computeMPEG7(vector<float> &fv, string mpeg7List, string mpeg7Path, 
        string mpegScd, string mpegEhd);      
protected:
    
    void serialize(vector<float> fv, ofstream& file, string filename);
    void readAndBinValues(string filename, int numBins, vector<float> &fv,
        int minT, int maxT);
    
    HOGSettings settings;

};

#endif	/* FEATUREVECTORS_H */
